package com.eastfair.imaster.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.imaster.entity.CheckEmployee;
import com.eastfair.imaster.enumeration.CheckEmployeeStatusEnum;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 公司审核用户表
 * </p>
 *
 * @author ligang
 * @date 2021-08-28
 */
public interface CheckEmployeeService extends SuperService<CheckEmployee> {
    /**
     * 将用户拉入到公司，进行审核
     *
     * @param companyId     公司id
     * @param userAccountId 用户账户id
     * @param isCheck       是否需要验证
     * @param isAdamin      是否需要成为管理员 1是0否
     * @return
     */
    R addUserIdOfCompany(Long companyId, Long userAccountId, Boolean isCheck, Integer isAdamin);

    /**
     * 审核用户是否成为公司员工
     *
     * @param id        主键id
     * @param isConsent 是否同意
     * @return
     */
    R checkUserIdOfCompany(Long id, Boolean isConsent);

    /**
     * 取消审核用户成为公司员工
     *
     * @param id 主键id
     * @return
     */
    R cancelUserIdOfCompany(Long id);

    /**
     * 查询操作，内部使用
     * @param checkEmployee
     * @param ids
     * @return
     */
    List<CheckEmployee> list(CheckEmployee checkEmployee, List<Long> ids);


    /**
     * 查询公司下审核的员工
     * @param companyId 公司id
     * @param status 审核状态
     * @return
     */
    List<CheckEmployee> queryCheckEmployeeOfCompany(Long companyId, CheckEmployeeStatusEnum status);


    /**
     * 校验用户是否已经归属公司或正在被审核中
     * @param userAccountId 用户账户id
     * @return
     */
    R verifyCompanyIsCheck(Long userAccountId);



}
